//定义关于counter的store
import {defineStore} from 'pinia'
import {Service} from "../requests/index.ts";
import {message} from "ant-design-vue";

/*defineStore 是需要传参数的，其中第一个参数是id，就是一个唯一的值，
简单点说就可以理解成是一个命名空间.
第二个参数就是一个对象，里面有三个模块需要处理，第一个是 state，
第二个是 getters，第三个是 actions。
*/
const useProject = defineStore("project",{
    state:() => ({
        projectList: [],//项目列表
        currentProject: {},//项目名称
    }),

    getters: {

    },

    actions: {
        //基本使用
        selectCurrentProject(name) {
            return this.currentProject.name = name
        },
        //获取项目列表
        getProjectList() {

            //调用接口获取项目列表
            Service.queryProjectListUsingGet().then(res => {
                // console.log("res",res)
                console.log("getProjectList",res)
                this.projectList = res.data
            })
            return this.projectList
        },
        //添加项目
        addProjectList(project) {
            // console.log("project",project)
            Service.addProjectUsingPost(project.name).then(res => {
                console.log("res",res)
                if (res.respCode === 200) {
                    this.projectList = res.data
                }else {
                    message.error(res.message);
                }
            })
            return this.projectList
        },
        //删除项目
        deleteProjectList(name) {
            Service.deleteProjectUsingDelete(name).then(res => {
                console.log("res",res)
                if (res.respCode === 200) {
                    this.projectList = res.data
                }else {
                    message.error(res.message);
                }
            })
            return this.projectList

        }
    }
})

//暴露这个project模块
export default useProject
